package cn.dankal.flyaudio.information.detail;


import cn.dankal.basiclib.base.BasePresenter;
import cn.dankal.basiclib.base.BaseStateView;
import cn.dankal.business.pojo.BaseBeanList;
import cn.dankal.business.pojo.CommentBean;
import cn.dankal.business.pojo.CurrentBean;
import cn.dankal.business.pojo.InfoBean;
import cn.dankal.business.pojo.ReasonBean;

public interface InformationContract {

    interface Presenter extends BasePresenter<View> {


        void setUuid(String uuid);

        /**
         * 点赞
         *
         * uuid 资讯或评论uuid
         * type 1此刻 2评论
         *
         * @param commentType 评论类型 咨询/此刻
         */
        void praise(String uuid, String commentType, int position);

        /**
         * 取消点赞
         *
         * uuid 资讯或评论uuid
         * type 1此刻 2评论
         *
         * @param commentType 评论类型 咨询/此刻
         */
        void praiseCancel(String uuid, String commentType, int position);

        /**
         * 获取帖子回复列表
         *
         * @param page_index [false] 页数
         * @param page_size  [false] 条数
         */
        void getCommentList(
                String uuid_id, Integer page_index, Integer page_size);

        /**
         * 刷新评论列表
         */
        void refreshCommitList();

        /**
         * 刷新
         */
        void onRefresh();

        /**
         * 加载更多
         */
        void onLoadMore();


        /**
         * "content": "string",
         * "uuid": "资讯or此刻uuid"
         *
         * @param content
         * @param uuid
         */
        void comment(
                String content,
                String uuid);


        /**
         * 内部评论
         * "commentUuid":"string",
         * "content":"string",
         * "receiveUuid":"string",
         * "uuid":"资讯or此刻uuid"
         */
        void inside_comment(
                String commentUuid,
                String content,
                String receiveUuid,
                String uuid);

        /**
         * 资讯详情
         * @param uuid
         */
        void info_detail(String uuid);

//        /**
//         * 此刻详情
//         * @param uuid
//         */
//        void current_detail(String uuid);




    }

    interface View extends BaseStateView {

        void onCommentList(BaseBeanList<CommentBean> commentBeanBaseBeanList);
        /**
         * 点赞/取消点赞
         *
         * @param position 点赞的位置 。用于返回进行局部刷新
         *
         * @param bodyCase 结果响应
         */
        void onPraiseResult(ReasonBean bodyCase, int position);


        /**
         * 内部评论的结果
         * @param commentCase 结果响应
         */

        void onInnerCommentResult(ReasonBean commentCase);


        /**
         * 回复
         * @param commentBean 提交的评论，返回在回调用于局部刷新
         *
         * @param reasonBean 结果响应
         */
        void onCommentResult(ReasonBean reasonBean, CommentBean commentBean);


        void onInfoDetailResult(InfoBean infoBean);

        void onCurrentDetailResult(CurrentBean currentBean);


    }

}